package com.drink.yan.core.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.drink.yan.intf.entity.YanUserDetail;
import com.drink.yan.intf.entity.YanUserTeacher;
import com.drink.yan.intf.vo.*;
import com.drink.yan.web.rest.req.qry.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * java类简单作用描述
 *
 * @Title:
 * @Package: com.drink.yan.core.mapper.
 * @Author: M.simple
 * @Remark: The modified content
 * @CreateDate: 2023/11/24 20:45
 * @Version: v2.0
 */
@Repository
public interface YanUserDetailMapper extends BaseMapper<YanUserDetail> {

	Integer countStudentNum(Long userId);

	List<CommissionUserVo> listCommissionUser(UserCommissionQry qry);

	List<UserSeniorVo> listSenior(PageSeniorQry qry);

	List<StudentVo> listStudent(PageStudentQry qry);

	List<UserAgencyVo> listAgency(PageAgencyQry qry);

	List<UserCounselorVo> listCounselor(PageCounselorQry qry);

	List<UserCommuLogVo> listCommuLog(PageCommuLogQry qry);

	List<UserTeacherVo> listTeacher(PageTeacherQry qry);

	YanUserTeacher getLinkTeacher(@Param("bachelorSchId") Long bachelorSchId, @Param("bachelorSpeId") String bachelorSpeId);

	List<Long> selectAllTeacherId();

	void deleteBind(@Param("userId") Long userId);

	List<YanUserDetail> listTeacherDataNeedParse();

	Integer agencyCountBuyCourseNum(Long userId);

	List<UserBindVo> listUserBind(PageUserBindQry qry);

	List<Long> selectAllAgencyId();

	List<Long> selectTeacherBySchoolArea(@Param("schoolAreaIds") List<Long> schoolAreaIds);

	List<Long> selectAgencyBySchoolArea(@Param("schoolAreaIds") List<Long> schoolAreaIds);

	List<Long> selectAllStudentId();

	List<Long> selectStudentBySchoolArea(@Param("schoolAreaIds") List<Long> authUserIdList);

	List<Long> selectAgencyByTeacherIds(@Param("authUserIdList") List<Long> authUserIdList);

	List<Long> selectStudentByTeacherIds(@Param("authUserIdList") List<Long> authUserIdList);
}
